package server;

import java.io.*;
import java.net.Socket;

public class AtendeLeitor implements Runnable {

        private Socket s;
    private String path;
    private String mensagem;
    private String owner;
    private String destinatario;
    private int cont = 0;

    AtendeLeitor(Socket server) {
        this.s = server;
    }

    public void run() {
        try {

            DataInputStream in = new DataInputStream(s.getInputStream());
            DataOutputStream out = new DataOutputStream(s.getOutputStream());
            String msg = "";
            
            System.out.println("atendimento de leitor");

            boolean pronto = false;
            while (!pronto) {

                //Cria um BufferedReader para o canal da stream de entrada de dados do socket s
                String mensagem = in.readUTF();

                try {
                    if (mensagem.contains("ME:")) {
                        String[] partes = mensagem.split(":");
                        owner = partes[1];
                        System.out.println(owner);
                        path = System.getProperty("user.home") + System.getProperty("file.separator") + owner + System.getProperty("file.separator");
                        System.out.println(path);
                        try{
                            File dir = new File(path);
                            if (dir.exists()) {
                                String[] arquivos = dir.list();
                                int i = 0;
                                int numarquivos = dir.list().length;
                                out.writeUTF("NUMARQ:" + Integer.toString(numarquivos));
                                while (i < numarquivos) {
                                    String linha = "";
                                    FileReader arquivo = new FileReader(path + arquivos[i]);
                                    BufferedReader buffer = new BufferedReader(arquivo);
                                    linha = buffer.readLine();
                                    out.writeUTF(linha);
                                    buffer.close();
                                    i++;
                                }
                            } else {
                                out.writeUTF("usuario nao tem conta");
                            }
                        } catch (Exception e){
                            System.out.println(e.toString());
                        }
                    }
                    if (mensagem.contains("bye")) {
                        pronto = true;
                        out.writeUTF("OK");
                    }
                } catch (Exception e) {
                    System.out.println(e.toString());
                }

            }
            in.close();
            out.close();
        } catch (Exception e) {
            System.out.println("Erro na thread " + e.toString());
        }
    }
}